#include<stdio.h>

//int fun(int n) {
//    int sum = 0;
//    while (n) {
//        sum += n % 10;
//        n /= 10;
//    }
//    return sum;
//}
//int main() {
//    int count = 0;
//    int i, j, year, month, days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//    for (year = 1900; year <= 9999; year++) {
//        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
//            days[2] = 29;
//        else
//            days[2] = 28;
//        for (i = 1; i <= 12; i++) {
//            for (j = 1; j <= days[i]; j++) {
//                if (fun(year) == fun(i) + fun(j))count++;
//            }
//        }
//    }
//    printf("%d", count);
//    return 0;
//}


// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;

//int n, m;
//int dx[4] = { 0, 0, 1, -1 };
//int dy[4] = { 1, -1, 0, 0 };
//// vector<vector<bool>> vis = vector<vector<bool>>(101, vector<bool>(101, false));
//int step;
//bool vis[101][101];
//void dfs(vector<vector<int>>& v, int i, int j)
//{
//    vis[i][j] = true;
//    for (int k = 0; k < 4; k++)
//    {
//
//        int x = i + dx[k];
//        int y = j + dy[k];
//        if (x >= 0 && x < n && y >= 0 && y < m && v[x][y] < v[i][j] && vis[x][y] == false)
//        {
//            ++step;
//            dfs(v, x, y);
//        }
//    }
//}
//
//int main()
//{
//    cin >> n >> m;
//    vector<vector<int>> v(n, vector<int>(m, 0));
//
//    
//    for (int i = 0; i < n; i++)
//        for (int j = 0; j < m; j++)
//        {
//            cin >> v[i][j];
//        }
//
//    int ret = 1;
//    for (int i = 0; i < n; i++)
//        for (int j = 0; j < m; j++)
//        {
//            step = 0;
//            memset(vis, 0, sizeof vis);
//            dfs(v, i, j);
//            ret = max(step, ret);
//        }
//
//    cout << ret;
//    return 0;
//}


int main()
{
    long long sum = 0;

    long long tmp = 1;

    for (long long i = 1; i <= 202320232023; i++)
    {
        tmp *= i;
        sum += tmp;
    }

    sum %= 1000000000;

    cout << sum;
    return 0;
}